package com.zjmzxfzhl.modules.app.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.zjmzxfzhl.common.core.base.BaseService;
import com.zjmzxfzhl.modules.app.entity.AppDir;
import com.zjmzxfzhl.modules.app.form.AppDocVo;
import com.zjmzxfzhl.modules.app.form.DirCrumbVo;
import com.zjmzxfzhl.modules.app.form.DirIsLeafVo;
import com.zjmzxfzhl.modules.app.form.TaskCrumbVo;
import com.zjmzxfzhl.modules.sys.entity.vo.ElTree;

import java.util.List;

/**
 * Service
 * 
 * @author 张森荣
 */
public interface AppDirService extends BaseService<AppDir> {
    /**
     * 分页查询
     * 
     * @param page
     * @param appDir
     * @return
     */
    IPage<AppDir> list(IPage<AppDir> page, AppDir appDir);
    /**
     * 分页查询
     *
     * @param page
     * @param appDir
     * @return
     */
    List<AppDir> getList(IPage<AppDir> page, AppDir appDir);
    /**
     * 计算数量
     *
     * @param appDir
     * @return
     */
    Integer selectRowCount(AppDir appDir);
    /**
     * 新增目录，自动计算机构级别、机构级次码、是否叶子
     *
     * @param appDir
     * @return
     */
    boolean saveAppDir(AppDir appDir);

    /**
     * 机构管理，机构树数据
     *
     * @return
     */
    List<ElTree> getTreeData(AppDir appDir, String parentId, Integer level);

    /**
     * 移动目录，自动计算机构级别、机构级次码、是否叶子
     *
     * @param appDir
     * @return
     */
    boolean moveTree(AppDir appDir,String parentId);

    /**
     * 查询类型目录数量
     *
     * @return
     */
    List<DirIsLeafVo> dirIsLeaf();

    /**
     * 批量删除
     *
     * @return
     */
    boolean delByIds(String ids);

    /**
     * 返回单一树结构
     *
     * @return
     */
    ElTree resultTree(String id);

    /**
     * 面包屑导航
     *
     * @return
     */
    List<DirCrumbVo> dirCrumb(String dirId);
}
